package com.alks.function.service.finance.salary;

import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.dto.PcCuttingSalaryDto;
import com.alks.function.data.request.PcCuttingSalaryReq;
import com.alks.function.data.request.administration.JobTypeChangeRequest;
import com.alks.function.data.request.finance.salary.JobTypeRequest;
import com.alks.function.data.request.finance.salary.getEmployeeRequest;
import com.alks.function.data.request.finance.salary.getPcEmployeeWorkTypeRequest;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutionException;

public interface
SalaryFileCreationService {
    ResponseInfo ListOfWagesForJobTypes(String workType);

    ResponseInfo JobTypeSalaryUpdate(Map<String, String> map);

    ResponseInfo JobTypeChangeInquiry(JobTypeRequest request);

    ResponseInfo EmployeeList(getEmployeeRequest request);

    ResponseInfo ChangeQuery(getEmployeeRequest request);

    ResponseInfo ChangeConfirmation(JobTypeChangeRequest request);

    ResponseInfo JobTypeFilingQuery(getPcEmployeeWorkTypeRequest request);

    ResponseInfo JobTypeFilingAdd(getPcEmployeeWorkTypeRequest request);

    ResponseInfo JobTypeFilingDel(String workTypeSeq);

    ResponseInfo JobTypeFilingUpdate(getPcEmployeeWorkTypeRequest request);

    ResponseInfo getPcCuttingSalary(PcCuttingSalaryReq req);

    ResponseInfo confirmSalary(PcCuttingSalaryDto req);

    ResponseInfo returnCondition();

    ResponseInfo getPcCuttingTotalWP(PcCuttingSalaryReq req) throws ExecutionException, InterruptedException;

    void downloadCuttingCollect(HttpServletResponse response, String financeYymm) throws IOException;

    void exportPdf(HttpServletResponse response, PcCuttingSalaryReq req);
}
